3d direction finding method and device therefore

ABSTRACT

A method of determining a direction of arrival of a signal at a device comprising an antenna with multiple antenna elements, in a processor of the device configured to calculate an average signal for each antenna element based on the signal received at the antenna element over N time slots, determine respective phases of the average signals and determine at least one of an azimuth and elevation angle of the signal using the determined phases and information of the location of the antenna elements.

FIELD

Embodiments described herein relate generally to the computationally efficient determination of the angle or direction of arrival of a signal.

BACKGROUND

A feature of interest in the development of the low energy Bluetooth standard is direction finding, where a Bluetooth device equipped with multiple antenna elements can identify the direction of arrival of a received signal. Algorithms for the estimation of signal arrival angles or direction have previously been proposed. For Bluetooth low energy (BLE) devices, it is however necessary that the algorithm be computationally efficient.

Direction finding (DF) methods enable a device to determine the angle of arrival (AoA) or angle of departure (AoD) of signals by exploiting the differences in the received signal across different antenna elements. These methods can be classified as either spectral-based algorithm such as Bartlett, MUSIC and Capon or parametric-based algorithms such as Maximum Likelihood (ML). The techniques differ in performance and computational complexity.

While the complexity of DF schemes is manageable for a number of scenarios, for future low energy, low complexity devices with limited processing capabilities, the existing methods may not be feasible. This problem is exacerbated in 3D DF where the elevation angles also need to be computed.

Most of the conventional AoA/AoD algorithms in the array processing literature do not exploit the waveforms of the transmit signal. From the received signals at multiple antennas across several samples the sample covariance matrix may be derived. This covariance matrix is then used to derive a ‘spectrum’ wherein peaks correspond to the angles of interest.

In the following, embodiments will be described with reference to the drawings in which:

FIG. 1 shows a model of a system comprising 4 antenna elements alongside a signal source to be tracked with the relevant elevation θ and azimuth ϕ angles;

FIG. 2 shows a method according to an embodiment;

FIG. 3 shows a device according to an embodiment;

FIG. 4 shows a system employing the device of the embodiment; and

FIG. 5 shows absolute error curves provided by an embodiment.

DETAILED DESCRIPTION

According to an embodiment there is provided a method of determining a direction of arrival of a signal at a device comprising an antenna with multiple antenna elements, in a processor of the device configured to calculate an average signal for each antenna element based on the signal received at the antenna element over N time slots, determine respective phases of the average signals and determine at least one of an azimuth and elevation angle of the signal using the determined phases and information of the location of the antenna elements.

The method may further comprise defining, as two candidate azimuth angles, a determined azimuth angle and an angle spaced apart from the determined azimuth angle by 180 degrees and using a spectral-based direction finding algorithm or a parametric-based direction finding algorithm to decide between the candidate azimuth angles.

The values of the signal received over the N time slots can be identical.

The average may be calculated as a weighted average of the signal received over the N time slots if values of the signal received over the N time slots are not identical.

Ratios of averaged signals received through different antenna elements may be formed. The phase determination may be based on the ratios.

The information of the location of the antenna elements can be provided in a matrix. A vector comprising the phases of the averaged signals may be left-multiplied with a pseudo inverse of the matrix.

A determined angle of arrival of the signal may be output to a computing system.

According to a further embodiment there is provided a device comprising an antenna with multiple antenna elements and a processor configured to calculate an average signal for each antenna element based on the signal received at the antenna element over N time slots, determine respective phases of the average signals and determine at least one of an azimuth and elevation angle of the signal using the determined phases and information of the location of the antenna elements.

According to another embodiment there is provided a non-transitory storage medium comprising computer program instructions, the computer program instructions, when executed by the processor configured to cause the processor to perform any of the aforementioned methods.

An advantage of the embodiments is the lower complexity in finding desired angles. As opposed to searching over all possible combinations of angles, a closed-form approximation to the desired solutions is provided.

Known methods for determining the angle of arrival of a signal at a multi-antenna array include Bartlett, MUSIC and Capon. From the received signals, the mentioned schemes compute the sample covariance matrix as:

$\begin{matrix} {{\hat{R}}_{ss} = {\frac{1}{N}{\sum\limits_{t = 1}^{N}{{s(t)}{{s^{H}(t)}.}}}}} & (1) \end{matrix}$

wherein s(t) is the signal transmitted at time instant t, s^(H)(t) is the conjugate transpose of the signal transmitted at time instant t and N is the number of time slots over which the signal is received.

Computing the covariance matrix {circumflex over (R)}_(ss) requires

$\frac{NK}{2}\left( {K + 1} \right)$

complex multiplications,

$\frac{K}{2}\left( {N - 1} \right)\left( {K + 1} \right)$

complex additions,

$\frac{K}{2}\left( {K + 1} \right)$

divisions and

$\frac{K}{2}\left( {K - 1} \right)$

complex conjugate operations. In the Bartlett method for instance, the angles of interest are obtained from the sample covariance matrix by solving the following optimizations problem:

$\begin{matrix} {\arg \; {\max\limits_{{0 \leq \theta < 180},{0 \leq \varphi < 360}}{{a^{H}\left( {\theta,\varphi} \right)}{\hat{R}}_{ss}{{a\left( {\theta,\varphi} \right)}.}}}} & (2) \end{matrix}$

For simple, low energy devices such as Bluetooth, performing such operations can be challenging.

The inventors have realised that the large computational complexity is primarily due to the large angle search space. FIG. 1 shows a system with a receiving device having K antenna elements. A signal received at the k^(th) antenna from a single signal source without multi-path interference at time instant t is given by:

$\begin{matrix} \begin{matrix} {{y_{k}(t)} = {{{\exp \left( {{- j}\; \frac{2\pi}{\lambda}r_{k}^{T}w} \right)}{s(t)}} + {n_{k}(t)}}} \\ {= {{{a_{k}\left( {\theta,\varphi} \right)}{s(t)}} + {n_{k}(t)}}} \end{matrix} & (3) \end{matrix}$

where r_(k)=[x_(k), y_(k), z_(k)]^(T) represent the Euclidean coordinates vector of the kth antenna element (as shown in FIG. 1), λ is the signal wavelength, n_(k)(t) is the additive white Gaussian noise at antenna k and the steering vector w is:

$\begin{matrix} {w = \begin{bmatrix} {\sin \; \theta \; \cos \; \varphi} \\ {\sin \; \theta \; \sin \; \varphi} \\ {\cos \; \theta} \end{bmatrix}} & (4) \end{matrix}$

The azimuth and elevation angles, ϕ and θ, respectively are the unknown parameters of interest.

In vector notation the signal at the antenna array at time t is:

y=a(θ,ϕ)s(t)+n(t)  (5)

where a(θ, ϕ)=[a₁(θ, ϕ, . . . , a_(K)(θ, ϕ))]^(T). We assume N snapshots are available for estimating the angles of interest.

In conventional approaches for estimating the angles of arrival the transmit sequence s(t) are assumed to be unknown. However, in applications such as Bluetooth, s(t) can be assumed to be known. In fact in the Bluetooth standard the sequence is chosen to be:

s=[1,1, . . . ,1]  (6)

i.e., it consists of a N consecutive ones. It will, however, be appreciated that, in other standards, different predetermined/known transmit sequences may be used. Such structures can be exploited to reduce the complexity of direction finding algorithms.

In an angle-of-arrival (AoA) estimation scenario, where the receiver is equipped with K antennas arranged in a uniform circular array in which the receiver estimates the angle after N snapshots, in matrix notation, the signal received across K antennas over N time slots/samples/snapshots is:

Y=a(θ,ϕ)s+V  (7)

where Y=[y(1), . . . , y(N)], y(n)=[y₁(n), . . . , y_(K)(n)]^(T), V is the K×N complex matrix representing the additive Gaussian noise components,

a(θ, φ) = [a₁(θ, φ), a₂(θ, φ), …  , a_(K)(θ, φ)]^(T)  where ${a_{k}\left( {\theta,\varphi} \right)} = {{\exp \left( {{- j}\; \frac{2\pi}{\lambda}r_{k}^{T}w} \right)}.}$

With s=[1, 1, . . . , 1], Y can be viewed as the outcome of an experiment repeated N times. With zero mean additive white Gaussian noise and for large N:

E[Y]=E[a(θ,ϕ)s]=a(θ,ϕ)  (8)

Whilst large N are desirable, in practice the embodiment performed well with N as small as 7. Larger values of N are used in other embodiments.

The averaged received sequence is given by:

$\begin{matrix} {{E\lbrack Y\rbrack} = {\overset{\sim}{y} = {{\sum\limits_{t = 1}^{N}{y(t)}} \approx {a\left( {\theta,\varphi} \right)}}}} & (9) \end{matrix}$

With a single source with no multipath components or a strong line of sight component, the phase of individual entries of {tilde over (y)} can be approximated to the phases of the corresponding entries in a(θ, ϕ). This means the received signal {tilde over (y)} can be represented as:

y=[e ^(−ib) ¹ ,e ^(−ib) ² , . . . ,e ^(−ib) ^(K) ]^(T)  (10)

where b=[b₁, . . . , b_(K)]^(T) corresponds to the phases of {tilde over (y)}. Thus:

b=Rw  (11)

where

$R = {{\frac{2\pi}{\lambda}\begin{bmatrix} r_{1}^{T} \\ \vdots \\ r_{K}^{T} \end{bmatrix}}.}$

It follows that an estimate of w is given by:

ŵ=R ⁺ b  (12)

where R⁺ is the pseudo-inverse of R. This value is dependent only on the locations of the antenna elements and does not change over time. Thus, this matrix can be computed at design time and stored in the device memory to reduce the computational complexity of the system.

The azimuth and elevation angles can be solved by equating and solving:

$\begin{matrix} {\hat{w} = {\begin{bmatrix} {\hat{w}}_{1} \\ {\hat{w}}_{2} \\ {\hat{w}}_{3} \end{bmatrix} = \begin{bmatrix} {\sin \; \hat{\theta}\; \cos \; \hat{\varphi}} \\ {\sin \; \hat{\theta}\; \sin \; \hat{\varphi}} \\ {\cos \; \hat{\theta}} \end{bmatrix}}} & (13) \end{matrix}$

It follows that

$\hat{\varphi} = {{{atan}\; \frac{{\hat{w}}_{2}}{{\hat{w}}_{1}}\mspace{14mu} {and}\mspace{14mu} \hat{\theta}} = {{asin}\; {\frac{{\hat{w}}_{1}}{\cos \; \hat{\varphi}}.}}}$

In planar array configurations that may be used in Bluetooth devices, the z-coordinates of all the antenna elements, as well as ŵ₃ are zero. Moreover, given the planar configuration of the antenna array, it is not possible to distinguish whether the received signal is impinging on the array from above or the bottom. As such, we can set the range of {circumflex over (θ)} to [0, 90]. If {circumflex over (θ)}>90° from the above equations, the estimate of the elevation angle is changed to {circumflex over (θ)}→180−{circumflex over (θ)}.

In some cases, multiple feasible solutions may exist. For instance, observe that tan ϕ=tan(ϕ)+180°). In such an instance, prior art subspace based algorithms, such as Bartlett or MUSIC, or any other maximum likelihood or subspace-based method, can be used to evaluate the cost function at these two angles, i.e., ϕ and ϕ+180°. It was found that this can be achieved without performance degradation.

The angle that, according to the evaluated cost function, provides the optimal solution is selected as the desired angle. Compared to the conventional MUSIC algorithm, where the cost function has to be evaluated over all possible angles, the above described method is computationally very inexpensive. Assuming a step size of 1, the number of times the cost function is evaluated in the MUSIC or Bartlett method is 360*90=32400.

In the algorithm of the embodiment, instead on the sample covariance matrix,

$\overset{\sim}{y} = {{\left\lbrack {{\overset{\sim}{y}}_{1},{\overset{\sim}{y}}_{2},\ldots \mspace{14mu},{\overset{\sim}{y}}_{K}} \right\rbrack^{T}\mspace{14mu} {where}\mspace{14mu} {\overset{\sim}{y}}_{k}} = {\frac{1}{N}{\sum\limits_{n = 1}^{N}Y_{k,n}}}}$

and Y_(k,n) is the entry in Y on row k, column n. The computation of the vector {tilde over (y)} therefore consists only of NK complex additions and K divisions (K complex numbers divided by a scalar). Computing the phases of {tilde over (y)} involves K real divisions and K inverse trigonometric operations. As mentioned above, the pseudo-inverse of the locations matrix can be precomputed and stored in the device. The remaining steps are also straight forward.

The signal received across K antenna elements may contain an additional phase term. The signal received at time t at antenna element k is then:

$\begin{matrix} {{y_{k}(t)} = {{{\exp \left( {{{- j}\; \frac{2\pi}{\lambda}r_{k}^{T}w} + \epsilon} \right)}{s(t)}} + {n_{k}(t)}}} & (14) \end{matrix}$

where ∈ is an additional phase term. Without loss of generality, it can be assumed that ∈ is the same across all K antennas. One way of eliminating this unknown phase term is by taking the difference between successive rows of the matrices and perform the same operations as stated above. For example a difference matrix with K−1 rows can be defined as:

$\begin{matrix} {\overset{\_}{R}\overset{\Delta}{=}\begin{bmatrix} {r_{1}^{T} - r_{2}^{T}} \\ {r_{2}^{T} - r_{3}^{T}} \\ \vdots \\ {r_{K - 1}^{T} - r_{K}^{T}} \end{bmatrix}} & (15) \end{matrix}$

Similarly, we define the vector:

$\begin{matrix} {\overset{\_}{y}\overset{\Delta}{=}{\begin{bmatrix} {{\overset{\sim}{y}}_{1}/{\overset{\sim}{y}}_{2}} \\ \vdots \\ {{\overset{\sim}{y}}_{K - 1}/{\overset{\sim}{y}}_{K}} \end{bmatrix} = \begin{bmatrix} e^{i{\overset{\sim}{b}}_{1}} \\ \vdots \\ e^{i{\overset{\sim}{b}}_{K - 1}} \end{bmatrix}}} & (16) \end{matrix}$

Different definitions of difference matrices are also possible.

The initial estimate of azimuth and elevation angles is given by:

ŵ=R†b   (17)

FIG. 2 shows illustrates a method 200 of an embodiment. In step 210 the average {tilde over (y)} of the received signal sequences is calculated. As is the case in equation (8), this is done by summing all N elements of the received sequence. Whilst this sum could be divided by N doing so is not necessary as the calculated sum equally represents the average signal.

Based on the calculated average {tilde over (y)} the difference vector y is calculated in step 220 based on equation (15) above. The phases b is of y are then computed in step 230 and used in steps 240 and 250 to solve for the azimuth and elevation angles. If the azimuth value is determined in step 260 to be smaller than 0 degrees then the possible azimuth angles are set (in step 270) to include not only the determined azimuth angle but also another possible azimuth angle spaced 180 degrees apart from the determined azimuth angle.

If the azimuth value is determined in step 260 not to be smaller than 0 degrees then the possible azimuth angles are set (in step 300) to include the determined azimuth angle plus 180 degrees as well as the determined azimuth angle plus 360 degrees.

In addition to steps 260, 270 and 300, in step 310 it is determined if the elevation angle is greater than 90 degrees. Should this be the case then the elevation angle that will be considered is 180 degrees minus the determined elevation angle (step 320).

The candidate azimuth angles and the elevation angle are used as input angles in a conventional direction finding scheme in steps 280 and 290 to determine which of the candidate angles is more likely to be the correct candidate angle.

In summary, in an embodiment the following steps are performed to calculate an angle of arrival.

-   -   1) The average of the received signal vector over N time         instances is calculated     -   2) The phase of the average signal vector is calculated     -   3) The phase vector is then left-multiplied with the         pseudo-inverse of the antenna location matrix and solved for the         azimuth and elevation angles respectively     -   4) Should there be ambiguity then the search space to be covered         by known direction finding algorithms can be reduced by using         the known algorithm to decide which one of the candidate angles         is the correct candidate angle or is at least most likely to be         the correct candidate angle.

The above discussion has focussed on situations in which the signals received are known and identical. The embodiments described herein are, however, not limited to this situation. In alternative situations in which the received signal sequence is known but in which the signals received in the N time instances are not the same, the above discussed average can be calculated as a weighted average, so that the noise term is eliminated from the angle of arrival estimation in the same manner as discussed above.

Another embodiment of the proposed method could be to compute the phase difference between the signals received at the different antenna elements for each of the N samples and then take the average of the results. This will remove any effect due to different signals being transmitted at different time instants.

In embodiments the low complexity direction finding approach uses knowledge of a known transmit sequence. In the supplemental frame of Bluetooth low energy (BLE) transmissions, for instance, the transmit sequence is likely to be a constant signal. Under additive white Gaussian noise with zero mean, averaging the received sequence over multiple time instances ‘filters’ out the noise. The task of determining the azimuth and elevation angles then reduces to simpler operations. The method of the embodiments yield similar performance in the case of a single path as the conventional Bartlett algorithm over a wide range of signal-to-noise ratio values, while requiring much lower computational complexity. Moreover, the proposed method can used with existing algorithms such as MUSIC or Bartlett to reduce the search space of these algorithms.

FIG. 3 shows a device 100 according to an embodiment. In an embodiment the device is a BLE device. The device comprises four antenna elements 110. Each antenna element is communicatively connected to a receiver chain 120. The receiver chain 120 processes, including digitisation, received signals and transmits them to a processor 130. The processor 130 is coupled to non-volatile memory 140. Memory 140 stores computer program instructions that, when executed, cause the processor 130 to execute program steps that implement the above described method on the basis of signals received via the antenna elements 110 and receiver chains 120. The processor 130 may be an FPGA programmed to perform a method of an embodiment or a microprocessor executing program instructions stored in memory, wherein the program instructions cause the microprocessor to perform a method of an embodiment. It will be appreciated that the process could also be comprised of adders for averaging, with other computational steps being performed by accessing look-up-tables. The memory may comprise only read-only memory that stores the inverse of matrix R and/or the look-up-tables and/or program instructions for the microprocessor. Any intermediate values arrived at during performance of the above described method may be stored in volatile buffer memory. Alternatively the memory may be read/write memory so that all of the abovementioned data can be stored in the memory as well as any intermediate values that are needed for later computational steps.

The processor 130 is moreover coupled to an output port 150 for communicating calculated angles of arrival to outside entities.

FIG. 4 illustrates a system comprising the device 100, communicatively connected to a computing system 200. In the embodiment the connection between the two systems is established via output port 150 of device 100. The computing system 200 may, in one embodiment, be part of an on-board computing system of a vehicle, with the device 100 receiving and evaluating according to an embodiment signals received from tyre pressure sensors integrated in the tyres of the vehicle. As tyres are interchangeable and can rotate positions on the vehicle as they age the position of a given tyre/tyre pressure monitoring device on the vehicle at a given point in time is not necessarily known. By determining the angle of arrival of a signal received from the tyre pressure monitoring device in a tyre the computing environment 200 can determine from which tyre on the care a signal indicating, for example, under-inflation was received. Based on this information the operator of the vehicle can be given detailed instructions regarding which tyre needs to be inflated.

Other uses in vehicular environments are of course also possible. In one embodiment the computing system 200 may be part of an on-board computing system of a vehicle, with the device 100 receiving and evaluating according to an embodiment signals received from a vehicle unlocking device. Remote unlocking of cars allows an unparalleled convenience however it can introduce security vulnerabilities, especially when a key is in close proximity to the car but the user has no intention of unlocking the vehicle. By determining the angle of arrival of a signal received from an unlocking device the computing environment 200 can restrict the angles from which a vehicle can be unlocked. This is advantageous as it ensures the vehicle can only be unlocked when the user is directly in front of the vehicle door.

The computing environment may also be part of larger spaces in which the movement of signal sources is to be tracked. This may include tracking users in a given environment, for example to enable delivery of information to the user that is specific to the particular part of the environment in which the user is currently located, or for determining the location of certain objects within the environment. The angle of arrival of a signal from a given object could, for example be transmitted to a luggage tracking system in an airport or be used to determine where in a shop a given item is located. In these cases the computing environment 200 would be the or part of the luggage handling system of the airport or part of or they stock monitoring system of a shop.

In FIG. 5, the absolute error in azimuth and elevation angles estimation achieved using the embodiment is plotted. The actual azimuth and elevation angles are varied and the performance analysed. The plots indicate that the error in the angle estimation is always less than 2 degrees. The azimuth error is dependent on the actual azimuth angle and decreases with increasing signal-to-noise ratio. The performance of the embodiment is comparable to the solution of the Bartlett algorithm.

Whilst certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel devices, and methods described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the devices, methods and products described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions. 

1. A method of determining a direction of arrival of a signal at a device comprising an antenna with multiple antenna elements, in a processor of the device configured to: calculate an average signal for each antenna element based on the signal received at the antenna element over N time slots; determine respective phases of the average signals; and determine at least one of an azimuth and elevation angle of the signal using the determined phases and information of the location of the antenna elements.
 2. The method according to claim 1, further comprising: defining, as two candidate azimuth angles, a determined azimuth angle and an angle spaced apart from the determined azimuth angle by 180 degrees; and using a spectral-based direction finding algorithm or a parametric-based direction finding algorithm to decide between the candidate azimuth angles.
 3. The method according to claim 1, wherein values of the signal received over the N time slots are identical.
 4. The method according to claim 1, wherein said average is calculated as a weighted average of the signal received over the N time slots, wherein values of the signal received over the N time slots are not identical.
 5. The method according to claim 1, further comprising forming ratios of averaged signals received through different antenna elements and basing said phase determination on the ratios.
 6. The method according to claim 1, wherein the information of the location of the antenna elements is provided in a matrix and wherein a vector comprising the phases of the averaged signals is left-multiplied with a pseudo inverse of the matrix.
 7. The method according to claim 1, further comprising outputting a determined angle of arrival of the signal to a computing system.
 8. A device comprising an antenna with multiple antenna elements, and a processor configured to: calculate an average signal for each antenna element based on the signal received at the antenna element over N time slots; determine respective phases of the average signals; determine at least one of an azimuth and elevation angle of the signal using the determined phases and information of the location of the antenna elements.
 9. The device according to claim 8, the processor further configured to: defining, as two candidate azimuth angles, a determined azimuth angle and an angle spaced apart from the determined azimuth angle by 180 degrees; and using a spectral-based direction finding algorithm or a parametric-based direction finding algorithm to decide between the candidate azimuth angles.
 10. The device according to claim 8, the processor further configured to: form ratios of averaged signals received through different antenna elements; and base said phase determination on the ratios.
 11. The device according to claim 8, wherein the information of the location of the antenna elements is provided in a matrix and stored in said memory and wherein a vector comprising the phases of the averaged signals is left-multiplied with a pseudo inverse of the matrix.
 12. The device according to claim 8, further comprising an output for outputting a determined angle of arrival of the signal to a computing system.
 13. A non-transitory storage medium comprising computer program instructions, the computer program instructions, when executed by a processor, configured to cause the processor to perform the method according to claim
 1. 